www.gusucode.com > 连接 COM 与 .NET 的桥梁(三)——COM 服务器的 COM Interop 方式C++源码程序 > 连接 COM 与 .NET 的桥梁(三)——COM 服务器的 COM Interop 方式/comp6srcdnet3/代码/Code/DispConnect/SingleConnect/SingleConnect.cpp

    // SingleConnect.cpp : DLL 导出的实现。

#include "stdafx.h"
#include "resource.h"
#include "SingleConnect.h"

class CSingleConnectModule : public CAtlDllModuleT< CSingleConnectModule >
{
public :
	DECLARE_LIBID(LIBID_SingleConnectLib)
	DECLARE_REGISTRY_APPID_RESOURCEID(IDR_SINGLECONNECT, "{67E97121-64C7-4528-947B-56D4A5781603}")
};

CSingleConnectModule _AtlModule;


// DLL 入口点
extern "C" BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
{
	hInstance;
    return _AtlModule.DllMain(dwReason, lpReserved); 
}


// 用于确定 DLL 是否可由 OLE 卸载
STDAPI DllCanUnloadNow(void)
{
    return _AtlModule.DllCanUnloadNow();
}


// 返回一个类工厂以创建所请求类型的对象
STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID* ppv)
{
    return _AtlModule.DllGetClassObject(rclsid, riid, ppv);
}


// DllRegisterServer - 将项添加到系统注册表
STDAPI DllRegisterServer(void)
{
    // 注册对象、类型库和类型库中的所有接口
    HRESULT hr = _AtlModule.DllRegisterServer();
	return hr;
}


// DllUnregisterServer - 将项从系统注册表中移除
STDAPI DllUnregisterServer(void)
{
	HRESULT hr = _AtlModule.DllUnregisterServer();
	return hr;
}